home *** CD-ROM | disk | FTP | other *** search
/ Java 1996 August / Java - Summer 1996.iso / kaffe-0.2 / kaffe / itypes.h < prev    next >
C/C++ Source or Header  |  1996-02-19  |  1KB  |  48 lines

  1. /*
  2.  * itypes.h
  3.  * Internal types.
  4.  *
  5.  * Copyright (c) 1996 Systems Architecture Research Centre,
  6.  *           City University, London, UK.
  7.  *
  8.  * See the file "license.terms" for information on usage and redistribution
  9.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10.  *
  11.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, February 1996.
  12.  */
  13.  
  14. #ifndef __itypes_h
  15. #define __itypes_h
  16.  
  17. #define    TYPE_Boolean    4
  18. #define    TYPE_Char    5
  19. #define    TYPE_Float    6
  20. #define    TYPE_Double    7
  21. #define    TYPE_Byte    8
  22. #define    TYPE_Short    9
  23. #define    TYPE_Int    10
  24. #define    TYPE_Long    11
  25.  
  26. #define    MAXTYPES    16
  27.  
  28. struct itypes {
  29.     int    size;
  30.     char*    arraySig;
  31. };
  32.  
  33. extern struct itypes types[MAXTYPES];
  34.  
  35. #define    TYPE_SIZE(t)        types[t].size
  36. #define    TYPE_ARRAYSIG(t)    types[t].arraySig
  37. #define    TYPE_SIZE_C(c)                        \
  38.     ((c) == 'Z' ? types[TYPE_Boolean].size :        \
  39.     (c) == 'C' ? types[TYPE_Char].size :            \
  40.     (c) == 'F' ? types[TYPE_Float].size :            \
  41.     (c) == 'D' ? types[TYPE_Double].size :            \
  42.     (c) == 'B' ? types[TYPE_Byte].size :            \
  43.     (c) == 'S' ? types[TYPE_Short].size :            \
  44.     (c) == 'I' ? types[TYPE_Int].size :            \
  45.     (c) == 'J' ? types[TYPE_Long].size : 4)
  46.  
  47. #endif
  48.